package d5_map_traversal_method;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class MapDemo02 {
    public static void main(String[] args) {
        //目标: 掌握Map集合便利方式之二: 键值对
        Map<String, Integer> map = new HashMap<>();//一行经典代码
        map.put("陈平安", 178);
        map.put("姬紫月", 170);
        map.put("宁姚", 175);
        map.put("叶凡", 178);
        map.put("秦牧", 175);
        System.out.println(map);
        //{陈平安=178, 叶凡=178, 宁姚=175, 姬紫月=170, 秦牧=175}
        //底层遍历键和值,每遍历到一个键和值,就可以创建一个 Entry对象进行封装键和值(是一个内部接口,entry的实现类)

        //1、一开始是想通过增强for直接遍历Map集合, 但是无法直接遍历, 因为键值对直接开来是不存在数据类型的
        /*for (元素类型 变量: map){
        }


         */
        //2、调用Map集合的一个方法, 把Map集合转换成Set集合来遍历
        /**
         *      map = {陈平安=178, 叶凡=178, 宁姚=175, 姬紫月=170, 秦牧=175}
         *      ↓
         *      map.entrySet()
         *      ↓
         *      Set<Map.Entry<String, Integer>> entries = [(陈平安=178), (叶凡=178), (宁姚=175), (姬紫月=170), (秦牧=175)]
         */

        //static 的内部接口, 属于类本身持有
        Set<Map.Entry<String, Integer>> entries = map.entrySet();
        for (Map.Entry<String, Integer> entry : entries) {
            String key = entry.getKey();
            Integer value = entry.getValue();
            System.out.println(key + " == " + value);
        }


    }
}
